From 0afdd84a2a35bfd742f82b0b4372e1726169998a Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Mon, 9 Apr 2018 20:19:17 +0200 Subject: [PATCH] css: Clipping changes don't need a queue_allocate() anymore Now that queue_draw() isn't restricted to clip anymore, we don't need to care about clip in the CSS engine either. We do keep GTK_CSS_AFFECTS_CLIP around though because GtkWindow does care for the window's size. --- gtk/gtkcssstylepropertyimpl.c | 2 +- gtk/gtkcsstypesprivate.h | 7 ++++--- gtk/gtkpopover.c | 2 +- gtk/gtktextview.c | 2 +- gtk/gtktreeview.c | 2 +- gtk/gtkwidget.c | 8 ++------ 6 files changed, 10 insertions(+), 13 deletions(-) diff --git a/gtk/gtkcssstylepropertyimpl.c b/gtk/gtkcssstylepropertyimpl.c index 2574a6e2c3..0d1be84071 100644 --- a/gtk/gtkcssstylepropertyimpl.c +++ b/gtk/gtkcssstylepropertyimpl.c @@ -1173,7 +1173,7 @@ _gtk_css_style_property_init_properties (void) GTK_CSS_PROPERTY_TEXT_SHADOW, G_TYPE_NONE, GTK_STYLE_PROPERTY_INHERIT | GTK_STYLE_PROPERTY_ANIMATED, - GTK_CSS_AFFECTS_TEXT_CLIP, + GTK_CSS_AFFECTS_TEXT_CONTENT, shadow_value_parse, NULL, _gtk_css_shadows_value_new_none ()); diff --git a/gtk/gtkcsstypesprivate.h b/gtk/gtkcsstypesprivate.h index 2dae7214f0..eb6d6fab07 100644 --- a/gtk/gtkcsstypesprivate.h +++ b/gtk/gtkcsstypesprivate.h @@ -103,7 +103,8 @@ typedef guint64 GtkCssChange; * @GTK_CSS_AFFECTS_ICON_SIZE: Icon size is affected. * @GTK_CSS_AFFECTS_TEXT_ATTRS: Text attributes are affected. * @GTK_CSS_AFFECTS_TEXT_SIZE: Text size is affected. - * @GTK_CSS_AFFECTS_TEXT_CLIP: Text clipping is affected. + * @GTK_CSS_AFFECTS_TEXT_CONTENT: Text rendering is affected, but size or + * attributes are not. * @GTK_CSS_AFFECTS_ICON: Fullcolor icons and their rendering is affected. * @GTK_CSS_AFFECTS_SYMBOLIC_ICON: Symbolic icons and their rendering is affected. * @GTK_CSS_AFFECTS_OUTLINE: The outline styling is affected. Outlines @@ -130,7 +131,7 @@ typedef enum { GTK_CSS_AFFECTS_ICON_SIZE = (1 << 3), GTK_CSS_AFFECTS_TEXT_ATTRS = (1 << 4), GTK_CSS_AFFECTS_TEXT_SIZE = (1 << 5), - GTK_CSS_AFFECTS_TEXT_CLIP = (1 << 6), + GTK_CSS_AFFECTS_TEXT_CONTENT = (1 << 6), GTK_CSS_AFFECTS_ICON = (1 << 7), GTK_CSS_AFFECTS_SYMBOLIC_ICON = (1 << 8), GTK_CSS_AFFECTS_OUTLINE = (1 << 9), @@ -148,7 +149,7 @@ typedef enum { GTK_CSS_AFFECTS_POSTEFFECT) #define GTK_CSS_AFFECTS_TEXT (GTK_CSS_AFFECTS_TEXT_SIZE | \ - GTK_CSS_AFFECTS_TEXT_CLIP) + GTK_CSS_AFFECTS_TEXT_CONTENT) enum { /*< skip >*/ diff --git a/gtk/gtkpopover.c b/gtk/gtkpopover.c index be04da8f87..a2221b179e 100644 --- a/gtk/gtkpopover.c +++ b/gtk/gtkpopover.c @@ -260,7 +260,7 @@ node_style_changed_cb (GtkCssNode *node, GtkCssStyleChange *change, GtkWidget *widget) { - if (gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_SIZE | GTK_CSS_AFFECTS_CLIP)) + if (gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_SIZE)) gtk_widget_queue_resize (widget); else gtk_widget_queue_draw (widget); diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c index 101214dce0..b0d53652be 100644 --- a/gtk/gtktextview.c +++ b/gtk/gtktextview.c @@ -8897,7 +8897,7 @@ node_style_changed_cb (GtkCssNode *node, GtkCssStyleChange *change, GtkWidget *widget) { - if (gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_SIZE | GTK_CSS_AFFECTS_CLIP)) + if (gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_SIZE)) gtk_widget_queue_resize (widget); else gtk_widget_queue_draw (widget); diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index 23f7d32fce..4de024e1f0 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -8268,7 +8268,7 @@ gtk_tree_view_style_updated (GtkWidget *widget) style_context = gtk_widget_get_style_context (widget); change = gtk_style_context_get_change (style_context); - if (change == NULL || gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_SIZE | GTK_CSS_AFFECTS_CLIP)) + if (change == NULL || gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_SIZE)) { for (list = tree_view->priv->columns; list; list = list->next) { diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 99216c6904..d582c5ddca 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -5771,12 +5771,8 @@ gtk_widget_real_style_updated (GtkWidget *widget) { gtk_widget_queue_resize (widget); } - else if (gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_CLIP) || - (has_text && gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_TEXT_CLIP))) - { - gtk_widget_queue_allocate (widget); - } - else if (gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_REDRAW)) + else if (gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_REDRAW) || + (has_text && gtk_css_style_change_affects (change, GTK_CSS_AFFECTS_TEXT_CONTENT))) { gtk_widget_queue_draw (widget); } -- 2.30.2